The execution of an initial set of operations that a computer system performs when the computer system is powered on is known as “booting.” The boot process begins when a computer that has been turned off is turned on again, and ends when the computer is ready to perform its normal operations, typically when system software (e.g., operating system, virtualization software known as a hypervisor, etc.) has been loaded. The sequence of instructions that are executed during this boot process is referred to as a “boot sequence.” It should be also recognized that the boot process may begin pursuant to a software reset where power is not interrupted, and may involve steaming in an image of the system software through a network connection, such as in network booting, e.g., PXE boot. Furthermore, the boot process may include more abbreviated forms of booting, such as resume from hibernate. Thus, as used herein, the term “booting” should be interpreted broadly to include any process pursuant to which system software is loaded into memory.
Although various techniques have been developed for probing the performance of a computer system, they cannot be used for dynamically probing a boot sequence of the computer system. For example, DTrace, which is a comprehensive dynamic probing framework for troubleshooting kernel and application problems on production systems in real time, is not capable of probing a boot sequence of the computer system. Another such example is VProbes, developed by VMware, Inc. of Palo Alto, Calif., which enables administrators to dynamically instrument various software modules of virtual machines (VMs) running in a virtualized computer system and gather performance data relating to the instrumented software modules for analysis. Details of VProbes are described in the user's manual available from VMware, Inc. entitled “VMware VProbes User Guide,” which is incorporated by reference herein.